Como mudar o type do input de acordo com o tipo de dado no banco?
case data type input angular
Uso o *ngIf na view comparando o tipo de dado vindo do banco, assim:
<input type="date" *ngIf="linha.tipo == 'date'" class="form-control" id="{{linha.coluna}}" #input value="{{linha.valor}}" placeholder="Informe o Conteúdo sobre {{ linha.coluna }}" />
<input type="number" *ngIf="linha.tipo == 'int4'" class="form-control" id="{{linha.coluna}}" #input value="{{linha.valor}}" placeholder="Informe o Conteúdo sobre {{ linha.coluna }}" />
<input type="text" *ngIf="linha.tipo == 'numeric'" class="form-control" id="{{linha.coluna}}" #input value="{{ linha.valor }}" placeholder="0,00" />
Nos exemplos acima o input só irá aparecer quando o campo for de determinado tipo de dado date, int4 ou numeric.
Sendo usado o type para o tipo date, date mesmo, para int4 number e para numeric text. Pois os tipos de dados do html não são os mesmos do banco por isso no numeric do banco uso o text que seria varchar ou seja qualquer texto, string.
Essas informações que formam a linha vem do banco de dados. É feito uma query que pega o column_name e o data_type e coloco ele no array linhas que dá origem ao linha com ngFor.
Leia mais em: ngular.io/